Если мы попробуем открыть файл и он окажется не хранилищем, то мы получим сообщение об ошибке. Лучше заранее проверить является ли файл хранилищем. Так как отказ в открытии хранилища может быть по разным причинам. Например, хранилище уже отрыто. Проверить является ли файл хранилищем можно использовав функцию StgIsStorageFile():
WINOLEAPI StgIsStorageFile ( const WCHAR *pwcsName //указатель на имя файла );
Возвращаемые значения следующиe:
Смотрим пример:
#include "stdafx.h"
#include "windows.h"
#include "ole2.h"
#include "iostream.h"
void main()
{
LONG l = StgIsStorageFile(L"test.stg");
if (l == S_OK)
cout << "The file is a structured storage file" << endl;
else
cout << "The file is not a structured storage file" << endl;
}